# -*- coding: utf-8 -*-
# author yzs
# date 2019-01-01
#
# 计数排序
# Description
# 实现计数排序，通过多次遍历数组，统计比每一个元素小的其它元素个数，根据该统计量对数据进行排序。
# Input
# 输入的每一行表示一个元素为正整数的数组，所有值用空格隔开，第一个值为数值长度，其余为数组元素值
# Output
# 输出每一行为排序结果，用空格隔开，末尾不要空格
# Sample Input 1
# 13 24 3 56 34 3 78 12 29 49 84 51 9 100
# Sample Output 1
# 3 3 9 12 24 29 34 49 51 56 78 84 100


def counting_sort(data, result, max_num):
    n = len(data)
    count = [0] * (max_num+1)
    for j in range(0, n):
        count[data[j]] += 1
    for i in range(1, max_num + 1):
        count[i] += count[i - 1]
    for j in range(n - 1, -1, -1):
        result[count[data[j]] - 1] = data[j]
        # 相同值元素位置前移
        count[data[j]] -= 1


while True:
    try:
        data = list(map(int, input().strip().split()))
        num, data = data[0], data[1:data[0] + 1]
        result = [0] * num
        counting_sort(data, result, max(data))
        print(" ".join(str(i) for i in result))
    except EOFError:
        break
